﻿<html>
<head>
<title>Input正则</title>
<meta charset="utf-8"/>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="renderer" content="webkit">
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no"/>
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" >  
<link rel="stylesheet" href="http://code.z01.com/v4/dist/css/bootstrap.min.css" >
<link rel="stylesheet" href="http://code.z01.com/zico.min.css" >
<script src="https://code.z01.com/jquery/jquery-3.2.1.min.js" ></script>
<script src="http://code.z01.com/v4/dist/js/popper.min.js"></script>
<script src="http://code.z01.com/v4/dist/js/bootstrap.min.js" ></script>
</head>
<body>
    <div class="container-xl">
    js 限制input只能输入数字小数点也不能输入或者是只能输入数字,能输小数点等等，本文大致整理了一些，感兴趣的朋友可以收藏下。
<br>
    
1.只能输入`chun`四个字符
    <br>
    <font color="Red">chun</font>
    <input onKeyUp="value=value.replace(/[^\d|chun]/g,'')">
    <br>

2.小数点后只能有最多两位(数字,中文都可输入),不能输入字母和运算符号:
    <br>
    <input onKeyPress="if((event.keyCode<48 || event.keyCode>57) && event.keyCode!=46 || /\.\d\d$/.test(value))event.returnValue=false">
    <br>

3.小数点后只能有最多3位(仅数字),不能输入字母和运算符号:
    <br>
    <input onKeyPress="if((event.keyCode<48 || event.keyCode>57) && event.keyCode!=46 || /\.\d\d\d$/.test(value))event.returnValue=false">
    <br>

  
    <br>
3.只能输入数字和小数点
    <br>
    代码如下:
    <br>
   <input type="text" onKeyUp="this.value=this.value.replace(/[^\.\d]/g,'');if(this.value.split('.').length>2){this.value=this.value.split('.')[0]+'.'+this.value.split('.')[1]}">
   <br>
    
4.只能包含三个字母的文本字段（数字或特殊字符）：
   <br>
 <input type="text" name="country_code" pattern="[A-z]{3}" title="仅支持三个字母" />
 <br>
方法：
<br>
 <form action="/example/html5/demo_form.aspx" method="get">
仅支持三位英文国家代码：<input type="text" name="country_code" pattern="[A-z]{3}" title="三个字母的国家代码" />
<input type="submit" />
</form>
方法：
<br>
 <form action="/example/html5/demo_form.aspx" method="get">
仅支持二位数字：<input type="text" name="country_code" pattern="[0-9]{2}" title="仅支持二位数字" />
<input type="submit" />
</form>

5.只能输入和粘贴汉字
<input onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))"><br/>
    
6.只能输入和粘贴数字
<input onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')" /><br/>
7.仅数字，否则脚本提示
<input onkeyup="if(/\D/.test(this.value)){alert('只能输入数字');this.value='';}"><br/>

8.只能输入数字和英文
<input onkeyup="value=value.replace(/[\W]/g,'') " onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"><br/>
 
9.简易禁止输入汉字
<input style="ime-mode:disabled">输入法不转换，但可粘贴上<br/>
 
10.输入数字和小数点
<input onkeyup="value=value.replace(/[^\d{1,}\.\d{1,}|\d{1,}]/g,'')" /><br/>
 
11.只能数字和"-",例如在输入时间的时候可以用到
<input onkeyup="value=value.replace(/[^\w&=]|_/ig,'')" onblur="value=value.replace(/[^\w&-]|_/ig,'')" /> <br>
 
12.JS控制 input 输入字符限制 <br>
 
ENTER键可以让光标移到下一个输入框 <br>

代码如下:
 
<input onkeydown="if(event.keyCode==13)event.keyCode=9" >
<input onkeydown="if(event.keyCode==13)event.keyCode=9" >

<br>

13.只能是中文
<input onkeyup="value=value.replace(/[ -~]/g,'')" onkeydown="if(event.keyCode==13)event.keyCode=9"> <br>
14.只能输入英文和数字 <br>
<input onkeyup="value=value.replace(/[/W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/d]/g,''))" onkeydown="if(event.keyCode==13)event.keyCode=9">  <br>
15.只能是数字 <br>
<input onkeyup="value=value.replace(/[^/d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/d]/g,''))">
 
只能显示，不能修改,用`readonly`
 
代码如下: <br>
<input readonly value="只能显示，不能修改">

<br>
16.只能输数字，判断按键的值
<script language=javascript>
function onlyNum()
{
if(!((event.keyCode>=48&&event.keyCode<=57)||(event.keyCode>=96&&event.keyCode<=105)||(event.keyCode==8)))
event.returnValue=false;
}
</script>
<input onkeydown="onlyNum();">
<br>


17.只能输入数字,能输小数点. <br>
<input onkeyup="if(isNaN(value))execCommand('undo')" onafterpaste="if(isNaN(value))execCommand('undo')" />
<input name=txt1 onchange="if(//D/.test(this.value)){alert('只能输入数字');this.value='';}">

<br>

18.只能输入英文字母和数字,不能输入中文 <br>
<input onkeyup="value=value.replace(/[^/w/.//]/ig,'')">  <br>
 


19.只能输入数字、小数点、负数 <br>
 
代码如下: <br>
 
<input id="title" name="input" type="text" onkeyup="JHshNumberText(this)" />
 
<script>
//屏蔽汉字，支持符号标点和数字英文
function JHshNumberText(a)
{
var fa="";
if(a.value.substring(0,1)=="-")
fa="-";
var str=(a.value.replace(/[^0-9.]/g,'')).replace(/[.][0-9]*[.]/, '.');
if (str.substring(0,1)==".")
str="0"+str;
a.value=fa+str;
}
</script>

<br>
 
20.取消按钮按下时的虚线框,在input里添加属性值 hideFocus 或者 HideFocus=true <br>
<input type="submit" value="提交" hidefocus="true" />
 <br>
 
21.防止退后清空的TEXT文档(可把style内容做做为类引用)
<input type="text" style="behavior:url(#default#savehistory);" />

22.只能为中文(有闪动) <br>
<input type="text" onkeyup="value=value.replace(/[ -~]/g,'')" onkeydown="if(event.keyCode==13)event.keyCode=9" /> <br>
 
23.只能为数字(有闪动) <br>
<input type="text" onkeyup="value=value.replace(/[^/d]/g,'') " onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/d]/g,''))" /> <br>
 
24.只能为数字(无闪动) <br>
<input type="text" style="ime-mode:disabled" onkeydown="if(event.keyCode==13)event.keyCode=9" onkeypress="if ((event.keyCode<48 || event.keyCode>57)) event.returnValue=false" />


    </div>    
</body>
</html>